读入n(1 < n < 10000)个非零整数,求他们的和与均值

来源:百度知道 编辑:UC知道 时间:2024/07/04 02:24:33
1,输入有多行,每行有一个整数(通过读到0判断输入结束)。
2,输出也只有一行,先输出和,再输出平均值(保留小数点后9位),两个数之间用空格分隔
3,(必须用)提示1:用while语句判断读到0输入结束
while(a!=0)
{
...
scanf("%d",&a);
}

提示2:使用printf("%.9lf", ...)实现保留小数点后9位。
例子输入
344
222
343
222
0

例子输出
1131 282.750000000
我们的系统很奇怪,一点不同就无法通过,请大家输入例子试试好吧

无法通过是指的什么?系统报错,还是什么!
#include<stdio.h>
#include<windows.h>
void main()
{
int n,a,i=2;
double tot=0.0;
double avg=0.0;
printf("输入要录入多少个数:");
scanf("%d",&n);
printf("开始输入:");
scanf("%d",&a);
while(a!=0&&i<=n+1)/*规定了录入数的个数*/
{
tot+=a;
avg=tot/n;
++i;
scanf("%d",&a);

}

printf("tot=%.9lf avg=%.9lf",tot,avg);

system("pause");
}

//---------------------------------------------------------------------------

#include <stdio.h>

int main(void)
{
int a=1;
int sum=0;
int n=0;
while (a!=0)
{
scanf("%d",&a);
if (a) ++n;
sum+=n;
}
printf("%d %.9lf",sum,(double)sum/n);
return 0;
}

//-------------------------------